Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Programacion concurrente (página 2)




Enviado por Pablo Turmero



Partes: 1, 2

Monografias.com

Multiprogramacion
MULTIPROGRAMACION Es la técnica que permite que dos o mas programas ocupen la misma unidad de memoria principal y que sean ejecutados al mismo tiempo.

La multiprogramación se refiere a dos o mas programas corriendo o procesándose al mismo tiempo; La multiprogramación se controla a través del sistema operativo, el cual observa los programas y los vigila hasta que estén concluidos.

El numero de programas que pueden multiprogramarse en forma efectiva, depende de una combinación de la cantidad de memoria, de la velocidad de la CPU y del numero y velocidad de los recursos periféricos que tenga conectados, así como de la eficiencia del SISTEMA OPERATIVO.

Monografias.com

Principios de Concurrencia
En un sistema multiprogramado con un único procesador, los procesos se intercalan en el tiempo aparentando una ejecución simultánea. Aunque no se logra un procesamiento paralelo y produce una sobrecarga en los intercambios de procesos, la ejecución intercalada produce beneficios en la eficiencia del procesamiento y en la estructuración de los programas.

Monografias.com

Principios de Concurrencia
La concurrencia es el punto clave en los conceptos de multitarea, multiprogramación y multiproceso, la concurrencia comprende un gran numero de cuestiones de diseño incluyendo la comunicación entre procesos, la compartición y competencia por los recursos, la sincronización de la ejecución de varios procesos y la asignación del procesador a los procesos, la concurrencia puede presentarse en tres contextos diferentes:

Varias aplicaciones:
Aplicaciones estructuradas:
Estructura del sistema operativo:

Monografias.com

Varias aplicaciones:
En este caso el tiempo de procesador de una máquina es compartido dinámicamente entre varios trabajos o aplicaciones activas.

Monografias.com

Aplicaciones estructuradas:
Como consecuencia del diseño modular de una aplicación y la división de la misma en tareas explícitas estas pueden ser ejecutadas de forma concurrente.
En programación, un lenguaje estructurado es aquel que soporta la división en bloques (procedimientos y funciones) que pueden o no comunicarse entre sí.

Por ejemplo, los archivos batch (.bat) es contrario a inestructurado, de poco uso, que no tiene ninguna estructura, es simplemente un “bloque”,

Monografias.com

Estructura del sistema operativo:
Como resultado de las aplicaciones estructurada que se aplica en el diseño del propio SO, de forma que este se implemente como un conjunto de procesos.

Monografias.com

LABORES DEL SISTEMA OPERATIVO
Son Elementos de gestión y diseño que surgen por causa de la concurrencia:
1) El sistema operativo debe seguir a los distintos procesos activos

2) El sistema operativo debe asignar y retirar los distintos recursos a cada proceso activo, entre estos se incluyen:
_Tiempo de procesador
_Memoria
_Archivos
_Dispositivos de E/S

3) El sistema operativo debe proteger los datos y los recursos físicos de cada proceso contra injerencias no intencionadas de otros procesos.

4) Los resultados de un proceso deben ser independientes de la velocidad a la que se realiza la ejecución de otros procesos concurrentes.

Monografias.com

SubPuede verse la concurrencia de procesos como una ejecución simultánea de varios procesos. Si tenemos un multiprocesador la concurrencia parece clara, en un momento dado cada procesador ejecuta un proceso.

Se puede ampliar el concepto de concurrencia si entendemos por procesado concurrente del sistema en conjunto,

varios procesos se vean en un estado intermedio entre su estado inicial y final. Esta última definición incluye los sistemas multiprogramados de un único procesador que estudiamos en los temas anteriores.

Comunicación y Sincronización de Procesos

Monografias.com

Cooperación entre Procesos

La velocidad de un proceso depende de la frecuencia de la
interrupción asociada a cada uno de ellos que un proceso
se ejecuta asíncronamente con respecto a otro, es decir, sus ejecuciones son independientes. Sin embargo, hay ciertos instantes en lo que los procesos deben sincronizar sus actividades. Son estos puntos a partir de los cuales un proceso no puede progresar hasta que otro haya completado algún tipo de actividad

Monografias.com

Posibilidad de interacción de procesos

Las posibilidadades de interaccion de los procesos pueden clasi?carse en funcion del nivel de conocimiento que cada proceso requieren la existencia de los demas.

Un proceso no tiene en absoluto conocimiento de la existencia de los demas

Que los procesos tengan un conocimiento indirecto de los otros procesos.

Tiene lugar cuando los procesos tienen conocimiento directo unos de otros por haber sido diseñados para trabajar conjuntamente el alguna actividad

Monografias.com

Comunicación y sincronización de proceso
1. Necesidad de exclusión mutua. Es decir, los procesos deberán acceder de forma exclusiva a ciertos recursos o zonas de memoria considerados como críticos.
Interbloqueos: tienen lugar cuando ninguno de los procesos en competencia puedecontinuar su ejecucion normal por carecer de alguno de los recursos que necesita.
3. ejecucion incompleto: este problema tiene lugar cuando la ejecucion de un proceso queda siempre pospuesta a favor de algun otro de los procesos en competencia.

Monografias.com

Necesidad de sincronizacion de los procesos: region critica yexclusion mutua
La sincronización entre procesos puede definirse como la necesidad que tienen algunos procesos de bloquearse en determinadas circunstancias y ser despertados cuando ocurren ciertos eventos. Un caso típico que muestra la necesidad de sincronización entre procesos es cuando un proceso inicia una lectura y va a utilizar en la siguiente instrucción la información leída. En este caso el proceso debe esperar a que se termine la operación de Entrada/Salida para continuar.

Monografias.com

Gestion de procesos
ejecucion

Monografias.com

La exclusión mutua la podríamos definir como una
operación de control que permite la coordinación de
procesos concurrentes (Comunicación requerida entre
dos o mas procesos), y que tiene la capacidad de
prohibir a los demás procesos realizar una acción
cuando un proceso haya obtenido el permiso.
LA EXCLUSION MUTUA

Monografias.com

SOLUCIONES SOFTWARE PARA LA EXCLUSION MUTUA
Soluciones por Software. Una manera es dejar la responsabilidad
a los procesos que deseen ejecutar concurrentemente, de esta
manera los procesos deben coordinarse unos con otros para cumplir
la exclusión mutua sin ayuda alguna, aunque estas soluciones son
propensas a errores y a una fuerte carga de proceso (Algunos ejemplos
de estas son: Algoritmo de Dekker y Algoritmo de Peterson).

Monografias.com

Algoritmo de Dekker
Algoritmo de Peterson
Semáforos
Monitores
Paso de Mensajes
Soluciones Hardware para la exclusión mutua

Monografias.com

Algoritmo de Dekker
es un algoritmo de programación concurrente para exclusión mutua,
que permite a dos procesos o hilos de ejecución compartir un recurso
sin conflictos. Fue uno de los primeros algoritmos de exclusión mutua
inventados, implementado por Edsger Diikstra.
Si ambos procesos intentan acceder a la sección crítica simultáneamente, el algoritmo elige un proceso según una variable turno. Si el otro proceso está ejecutando en su sección crítica, deberá esperar su finalización.
Existen cinco versiones del algoritmo Dekker, teniendo ciertos fallos los primeros cuatro. La versión 5 es la que trabaja más eficientemente, siendo una combinación de la 1 y la 4.

Monografias.com

Versión 1: Alternancia estricta. Garantiza la exclusión mutua, pero
su desventaja es que acopla los procesos fuertemente, esto significa
que los procesos lentos atrasan a los procesos rápidos.

Versión 2: Problema interbloqueo. No existe la alternancia, aunque
ambos procesos caen a un mismo estado y nunca salen de ahí.

Versión 3: Colisión región crítica no garantiza la exclusión mutua.
Este algoritmo no evita que dos procesos puedan acceder al mismo
tiempo a la región critica.

Versión 4: Postergación indefinida. Aunque los procesos no están en
interbloqueo, un proceso o varios se quedan esperando a que suceda
un evento que tal vez nunca suceda.

Monografias.com

Algoritmo Dekker

Monografias.com

Peterson desarrolló el primer algoritmo (1981) para dos procesos que fue una simplificación del algoritmo de Dekker para dos procesos. Posteriormente este algoritmo fue generalizado para que funcione para N procesos .En el algoritmo para N procesos las variables c[i] además de valer "verdadero" y "falso", pueden valer "en sección critica" y turno desde 1 hasta N.
El procedimiento es una generalización de este .c[i], que es un array y turno, que solo puede valer 1o 2 .
.Este algoritmo garantiza la exclusión mutua debido al uso de una variable compartida , turno, que se chequea cada vez.
Algoritmo de Peterson

Monografias.com

Inicialmente, c[0]=c[1]= falso, y el valor de turno no tiene relevancia (pero de be ser 0 o 1). Para entrar en la sección crítica, el proceso Pi primero asigna el valor verdadero a c[i] y luego afirma que es el turno del otro proceso para entrar si así lo desea (turno = j). Si ambos procesos tratan de entrar a la vez, se asignará turno como i y j aproximadamente al mismo tiempo. Sólo una de estas asignaciones durará; la otra ocurrirá, pero será reemplazada de inmediato. El valor eventual de turno decide a cuál de los dos procesos se le permitirá entrar primero en su sección crítica.

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter